package br.ufc.great.dtx.tm.operations;

import java.util.Vector;

import br.ufc.great.dataguide.DGElement;
import br.ufc.great.xml.XMLElement;

/**
 * 
 * @author Leonardo Oliveira Moreira
 *
 * Classe que representa uma operação de inserção
 */
public class InsertOperation extends Operation {

	/**
	 * 
	 */
	private static final long serialVersionUID = -6544184602816413331L;
	
	public static final int BEFORE = 1;
	public static final int INTO = 2;	
	public static final int AFTER = 3;
	
	private String query;
	private XMLElement constructor;
	private int insertType;
	
	public InsertOperation(String id, String transactionId) {
		super(id, Operation.INSERT, transactionId);
	}

	/**
	 * Método que resgata o elemento construtor configurado
	 * 
	 * @return
	 */
	public XMLElement getConstructor() {
		return constructor;
	}

	/**
	 * Método utilizado para configurar um elemento construtor
	 * 
	 * @param constructor
	 */
	public void setConstructor(XMLElement constructor) {
		this.constructor = constructor;
	}

	/**
	 * Método que resgata a consulta configurada
	 * 
	 * @return
	 */
	public String getQuery() {
		return query;
	}

	/**
	 * Método utilizado para configurar uma consulta
	 * 
	 * @param query
	 */
	public void setQuery(String query) {
		this.query = query;
	}

	/**
	 * Método que resgata o tipo de inserção configurada
	 * 
	 * @return
	 */
	public int getInsertType() {
		return insertType;
	}

	/**
	 * Método utilizado para configurar o tipo de inserção
	 * 
	 * @param insertType
	 */
	public void setInsertType(int insertType) {
		this.insertType = insertType;
	}

}
